home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_md5.py < prev    next >
Text File  |  2005-10-18  |  2KB  |  59 lines

  1. # Testing md5 module
  2.  
  3. import unittest
  4. from md5 import md5
  5. from test import test_support
  6.  
  7. def hexstr(s):
  8.     import string
  9.     h = string.hexdigits
  10.     r = ''
  11.     for c in s:
  12.         i = ord(c)
  13.         r = r + h[(i >> 4) & 0xF] + h[i & 0xF]
  14.     return r
  15.  
  16. class MD5_Test(unittest.TestCase):
  17.  
  18.     def md5test(self, s, expected):
  19.         self.assertEqual(hexstr(md5(s).digest()), expected)
  20.         self.assertEqual(md5(s).hexdigest(), expected)
  21.  
  22.     def test_basics(self):
  23.         eq = self.md5test
  24.         eq('', 'd41d8cd98f00b204e9800998ecf8427e')
  25.         eq('a', '0cc175b9c0f1b6a831c399e269772661')
  26.         eq('abc', '900150983cd24fb0d6963f7d28e17f72')
  27.         eq('message digest', 'f96b697d7cb7938d525a2f31aaf161d0')
  28.         eq('abcdefghijklmnopqrstuvwxyz', 'c3fcd3d76192e4007dfb496cca67e13b')
  29.         eq('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
  30.            'd174ab98d277d9f5a5611c2c9f419d9f')
  31.         eq('12345678901234567890123456789012345678901234567890123456789012345678901234567890',
  32.            '57edf4a22be3c955ac49da2e2107b67a')
  33.  
  34.     def test_hexdigest(self):
  35.         # hexdigest is new with Python 2.0
  36.         m = md5('testing the hexdigest method')
  37.         h = m.hexdigest()
  38.         self.assertEqual(hexstr(m.digest()), h)
  39.  
  40.     def test_large_update(self):
  41.         aas = 'a' * 64
  42.         bees = 'b' * 64
  43.         cees = 'c' * 64
  44.  
  45.         m1 = md5()
  46.         m1.update(aas)
  47.         m1.update(bees)
  48.         m1.update(cees)
  49.  
  50.         m2 = md5()
  51.         m2.update(aas + bees + cees)
  52.         self.assertEqual(m1.digest(), m2.digest())
  53.  
  54. def test_main():
  55.     test_support.run_unittest(MD5_Test)
  56.  
  57. if __name__ == '__main__':
  58.     test_main()
  59.